﻿<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="unbounded">
        <xs:element name="packageInfo" type="packageItem" />
        <xs:element name="template" type="templateItem" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="templateItem">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="template" type="templateItem" />
      </xs:sequence>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="action">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="100" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute default="0" name="recursiveMode" type="xs:byte" use="optional" />
                <xs:attribute name="name" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="100" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:sequence>
    <xs:attribute name="name" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="1" />
          <xs:maxLength value="100" />
          <xs:whiteSpace value="preserve" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute default="0" name="isBuiltIn" type="xs:boolean" use="optional" />
  </xs:complexType>
  <xs:complexType name="packageItem">
    <xs:all>
      <xs:element minOccurs="1" maxOccurs="1" name="name">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="255" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="version">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="publisher" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="255" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>